import { observable, action, toJS } from 'mobx';
import { WeaLocaleProvider } from 'ecCom';
import { WeaTableNew } from 'comsMobx';
import * as API from '../../apis/netDisk';

const getLabel = WeaLocaleProvider.getLabel;
const { TableStore } = WeaTableNew;


/** *** 文件/文件夹 相关 **** */

class fileSystem {
   constructor(parent) {
      this.parent = parent;
   }

   @observable data = [
      {
         id: '1',
         type: 'folder',
         textname: 'hello',
         parentid: 'home',
         uptime: '2019-10-01 09:25:13',
         titleText: { icon: '名称：hello<br/>大小：321KB', name: 'hello' },
         ctrlX: false,
      },
      {
         id: '2',
         type: 'file',
         textname: '你好**.jpg',
         parentid: 'home',
         uptime: '2019-10-01 09:13:13',
         titleText: { icon: '名称：你好**.jpg<br/>大小：321KB', name: '你好**.jpg' },
         ctrlX: false,
      },
      {
         id: '3',
         type: 'file',
         textname: '参会人员.xls',
         selected: false,
         isFav: false,
         parentid: 'home',
         uptime: '2019-10-01 09:13:10',
         titleText: { icon: '名称：参会人员.xls<br/>大小：321KB', name: '参会人员.xls' },
         ctrlX: false,
      },
      {
         id: '4',
         type: 'file',
         textname: '上海市人民政府、上海警备区关于表彰2018年度上海市征兵工作先进单位和先进个人的决定.docx',
         selected: false,
         isFav: false,
         parentid: 'home',
         uptime: '2019-10-01 10:25:57',
         titleText: { icon: '名称：上海市人民政府、上海警备区关于表彰2018年度上海市征兵工作先进单位和先进个人的决定.docx<br/>大小：230KB', name: '上海市人民政府、上海警备区关于表彰2018年度上海市征兵工作先进单位和先进个人的决定.docx' },
         ctrlX: false,
      },
      {
         id: '5',
         type: 'file',
         textname: '会议PPT.ppt',
         selected: false,
         isFav: false,
         parentid: 'home',
         uptime: '2019-10-02 23:25:57',
         titleText: { icon: '名称：会议PPT.ppt<br/>大小：230KB', name: '会议PPT.ppt' },
         ctrlX: false,
      },
      {
         id: '6',
         type: 'file',
         textname: '发布.pdf',
         selected: false,
         isFav: false,
         parentid: 'home',
         uptime: '2019-10-03 23:25:57',
         titleText: { icon: '名称：发布.pdf<br/>大小：230KB', name: '发布.pdf' },
         ctrlX: false,
      },
      {
         id: '7',
         type: 'file',
         textname: '国务院办公厅关于云南大理经济开发区升级为国家级经济技术开发区的复函.txt',
         selected: false,
         isFav: false,
         parentid: 'home',
         uptime: '2019-10-31 23:25:57',
         titleText: { icon: '名称：国务院办公厅关于云南大理经济开发区升级为国家级经济技术开发区的复函.txt<br/>大小：230KB', name: '国务院办公厅关于云南大理经济开发区升级为国家级经济技术开发区的复函.txt' },
         ctrlX: false,
      },
      {
         id: '8',
         type: 'file',
         textname: '序ihello.avi',
         selected: false,
         isFav: false,
         parentid: 'home',
         uptime: '2019-10-29 23:25:57',
         titleText: { icon: '名称：序ihello.avi<br/>大小：230KB', name: '序ihello.avi' },
         ctrlX: false,
      },
      {
         id: '9',
         type: 'file',
         textname: 'Hello World.tsx',
         selected: false,
         isFav: false,
         parentid: 'home',
         uptime: '2019-10-30 23:25:57',
         titleText: { icon: '名称：Hello World.tsx<br/>大小：230KB', name: 'Hello World.tsx' },
      },
      {
         id: '10',
         type: 'file',
         textname: '天籁之音.mp3',
         selected: false,
         isFav: false,
         parentid: 'home',
         uptime: '2019-11-01 10:25:57',
         titleText: { icon: '名称：天籁之音.mp3<br/>大小：230KB', name: '天籁之音.mp3' },
      },
      {
         id: '11',
         type: 'file',
         textname: '.混缩config.js.zip',
         selected: false,
         isFav: false,
         parentid: 'home',
         uptime: '2019-10-01 15:25:57',
         titleText: { icon: '名称：混缩.zip<br/>大小：230KB', name: '混缩.zip' },
      },
      {
         id: '12',
         type: 'file',
         textname: "China Global Television Network, or CGTN, is China's new international media organization.aaa",
         selected: false,
         isFav: false,
         parentid: 'home',
         uptime: '2019-10-29 23:25:57',
         titleText: { icon: "名称：China Global Television Network, or CGTN, is China's new international media organization.aaa<br/>大小：230KB", name: "China Global Television Network, or CGTN, is China's new international media organization.aaa" },
      },
      // {
      //    id: "4",
      //    type: "file",
      //    textname: "上海市人民政府、上海警备区关于表彰2018年度上海市征兵工作先进单位和先进个人的决定.docx",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-10-01 10:25:57",
      //    titleText: { icon: "名称：上海市人民政府、上海警备区关于表彰2018年度上海市征兵工作先进单位和先进个人的决定.docx<br/>大小：230KB", name: "上海市人民政府、上海警备区关于表彰2018年度上海市征兵工作先进单位和先进个人的决定.docx" },
      //    ctrlX: false,
      // },
      // {
      //    id: "5",
      //    type: "file",
      //    textname: "会议PPT.ppt",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-10-02 23:25:57",
      //    titleText: { icon: "名称：会议PPT.ppt<br/>大小：230KB", name: "会议PPT.ppt" },
      //    ctrlX: false,
      // },
      // {
      //    id: "6",
      //    type: "file",
      //    textname: "发布.pdf",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-10-03 23:25:57",
      //    titleText: { icon: "名称：发布.pdf<br/>大小：230KB", name: "发布.pdf" },
      //    ctrlX: false,
      // },
      // {
      //    id: "7",
      //    type: "file",
      //    textname: "国务院办公厅关于云南大理经济开发区升级为国家级经济技术开发区的复函.txt",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-10-31 23:25:57",
      //    titleText: { icon: "名称：国务院办公厅关于云南大理经济开发区升级为国家级经济技术开发区的复函.txt<br/>大小：230KB", name: "国务院办公厅关于云南大理经济开发区升级为国家级经济技术开发区的复函.txt" },
      //    ctrlX: false,
      // },
      // {
      //    id: "8",
      //    type: "file",
      //    textname: "序ihello.avi",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-10-29 23:25:57",
      //    titleText: { icon: "名称：序ihello.avi<br/>大小：230KB", name: "序ihello.avi" },
      //    ctrlX: false,
      // },
      // {
      //    id: "9",
      //    type: "file",
      //    textname: "Hello World.tsx",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-10-30 23:25:57",
      //    titleText: { icon: "名称：Hello World.tsx<br/>大小：230KB", name: "Hello World.tsx" },
      // },
      // {
      //    id: "10",
      //    type: "file",
      //    textname: "天籁之音.mp3",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-11-01 10:25:57",
      //    titleText: { icon: "名称：天籁之音.mp3<br/>大小：230KB", name: "天籁之音.mp3" },
      // },
      // {
      //    id: "11",
      //    type: "file",
      //    textname: "混缩.zip",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-10-01 15:25:57",
      //    titleText: { icon: "名称：混缩.zip<br/>大小：230KB", name: "混缩.zip" },
      // },
      // {
      //    id: "12",
      //    type: "file",
      //    textname: "jhello.aaa",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-10-29 23:25:57",
      //    titleText: { icon: "名称：jhello.aaa<br/>大小：230KB", name: "jhello.aaa" },
      // },
      // {
      //    id: "4",
      //    type: "file",
      //    textname: "上海市人民政府、上海警备区关于表彰2018年度上海市征兵工作先进单位和先进个人的决定.docx",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-10-01 10:25:57",
      //    titleText: { icon: "名称：上海市人民政府、上海警备区关于表彰2018年度上海市征兵工作先进单位和先进个人的决定.docx<br/>大小：230KB", name: "上海市人民政府、上海警备区关于表彰2018年度上海市征兵工作先进单位和先进个人的决定.docx" },
      //    ctrlX: false,
      // },
      // {
      //    id: "5",
      //    type: "file",
      //    textname: "会议PPT.ppt",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-10-02 23:25:57",
      //    titleText: { icon: "名称：会议PPT.ppt<br/>大小：230KB", name: "会议PPT.ppt" },
      //    ctrlX: false,
      // },
      // {
      //    id: "6",
      //    type: "file",
      //    textname: "发布.pdf",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-10-03 23:25:57",
      //    titleText: { icon: "名称：发布.pdf<br/>大小：230KB", name: "发布.pdf" },
      //    ctrlX: false,
      // },
      // {
      //    id: "7",
      //    type: "file",
      //    textname: "国务院办公厅关于云南大理经济开发区升级为国家级经济技术开发区的复函.txt",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-10-31 23:25:57",
      //    titleText: { icon: "名称：国务院办公厅关于云南大理经济开发区升级为国家级经济技术开发区的复函.txt<br/>大小：230KB", name: "国务院办公厅关于云南大理经济开发区升级为国家级经济技术开发区的复函.txt" },
      //    ctrlX: false,
      // },
      // {
      //    id: "8",
      //    type: "file",
      //    textname: "序ihello.avi",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-10-29 23:25:57",
      //    titleText: { icon: "名称：序ihello.avi<br/>大小：230KB", name: "序ihello.avi" },
      //    ctrlX: false,
      // },
      // {
      //    id: "9",
      //    type: "file",
      //    textname: "Hello World.tsx",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-10-30 23:25:57",
      //    titleText: { icon: "名称：Hello World.tsx<br/>大小：230KB", name: "Hello World.tsx" },
      // },
      // {
      //    id: "10",
      //    type: "file",
      //    textname: "天籁之音.mp3",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-11-01 10:25:57",
      //    titleText: { icon: "名称：天籁之音.mp3<br/>大小：230KB", name: "天籁之音.mp3" },
      // },
      // {
      //    id: "11",
      //    type: "file",
      //    textname: "混缩.zip",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-10-01 15:25:57",
      //    titleText: { icon: "名称：混缩.zip<br/>大小：230KB", name: "混缩.zip" },
      // },
      // {
      //    id: "12",
      //    type: "file",
      //    textname: "jhello.aaa",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-10-29 23:25:57",
      //    titleText: { icon: "名称：jhello.aaa<br/>大小：230KB", name: "jhello.aaa" },
      // },
      // {
      //    id: "4",
      //    type: "file",
      //    textname: "上海市人民政府、上海警备区关于表彰2018年度上海市征兵工作先进单位和先进个人的决定.docx",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-10-01 10:25:57",
      //    titleText: { icon: "名称：上海市人民政府、上海警备区关于表彰2018年度上海市征兵工作先进单位和先进个人的决定.docx<br/>大小：230KB", name: "上海市人民政府、上海警备区关于表彰2018年度上海市征兵工作先进单位和先进个人的决定.docx" },
      //    ctrlX: false,
      // },
      // {
      //    id: "5",
      //    type: "file",
      //    textname: "会议PPT.ppt",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-10-02 23:25:57",
      //    titleText: { icon: "名称：会议PPT.ppt<br/>大小：230KB", name: "会议PPT.ppt" },
      //    ctrlX: false,
      // },
      // {
      //    id: "6",
      //    type: "file",
      //    textname: "发布.pdf",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-10-03 23:25:57",
      //    titleText: { icon: "名称：发布.pdf<br/>大小：230KB", name: "发布.pdf" },
      //    ctrlX: false,
      // },
      // {
      //    id: "7",
      //    type: "file",
      //    textname: "国务院办公厅关于云南大理经济开发区升级为国家级经济技术开发区的复函.txt",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-10-31 23:25:57",
      //    titleText: { icon: "名称：国务院办公厅关于云南大理经济开发区升级为国家级经济技术开发区的复函.txt<br/>大小：230KB", name: "国务院办公厅关于云南大理经济开发区升级为国家级经济技术开发区的复函.txt" },
      //    ctrlX: false,
      // },
      // {
      //    id: "8",
      //    type: "file",
      //    textname: "序ihello.avi",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-10-29 23:25:57",
      //    titleText: { icon: "名称：序ihello.avi<br/>大小：230KB", name: "序ihello.avi" },
      //    ctrlX: false,
      // },
      // {
      //    id: "9",
      //    type: "file",
      //    textname: "Hello World.tsx",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-10-30 23:25:57",
      //    titleText: { icon: "名称：Hello World.tsx<br/>大小：230KB", name: "Hello World.tsx" },
      // },
      // {
      //    id: "10",
      //    type: "file",
      //    textname: "天籁之音.mp3",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-11-01 10:25:57",
      //    titleText: { icon: "名称：天籁之音.mp3<br/>大小：230KB", name: "天籁之音.mp3" },
      // },
      // {
      //    id: "11",
      //    type: "file",
      //    textname: "混缩.zip",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-10-01 15:25:57",
      //    titleText: { icon: "名称：混缩.zip<br/>大小：230KB", name: "混缩.zip" },
      // },
      // {
      //    id: "12",
      //    type: "file",
      //    textname: "jhello.aaa",
      //    selected: false,
      //    isFav: false,
      //    parentid: "home",
      //    uptime: "2019-10-29 23:25:57",
      //    titleText: { icon: "名称：jhello.aaa<br/>大小：230KB", name: "jhello.aaa" },
      // },
   ];

   // todo name -> textname
   @observable tableStore = new TableStore({ dataHandle: (datas) => {
 datas.forEach((i) => {
 i.editing = false; 
}); return datas; 
} });

   @observable tableEdit = false; // 表格当前是否正在编辑
   @observable tableInputValue = ''; // 表格编辑框受控数据
   @observable iconLoading = false;


   // 修改 fileSystemData 数据统一接口
   @action setFileSystemData = (newData = {}) => {
      Object.keys(newData).forEach((i) => {
         this[i] = newData[i];
      });
   };

   // 新增上传文件
   @action newUploadFile = (newFile = {}) => {
      const type = this.parent.viewSettings.type;
      if (type === 'icon') {
         this.setFileSystemData({ data: [...toJS(this.data), newFile] });
         // this.rightHandle_sort("fileName");  // todo 等待修改
      } else if (type === 'list') {
         this.tableStore.datas = [...toJS(this.tableStore.datas), newFile];
      }
   };

   // 获取表格数据   todo 【调用API，获取数据后：1.将datas赋给data 2.selectedKeys清空 3.粘贴板清空 4.icon视图下拼接titleText】
   @action getTableDatas = (params = {}) => {
      // let type = this.topSelectedKey === "netDisk" ? "myDisk" : this.shareTabSelectedKey === "myShare" ? "myShare" : "colleaShare";
      let path = toJS(this.parent.pathSearch.path);
      let newParam = {
         view: 'list',
         type: this.parent.topSelectedKey === 'netDisk' ? 'myDisk' : this.parent.shareTabSelectedKey === 'myShare' ? 'myShare' : 'colleagueShare',
         parentID: path.length === 0 ? 'home' : path[path.length - 1].id,
         textname: '',
         order: 'filename',
         ...params,
      };

      API.getTableData(newParam).then((res) => {
         res.status && this.tableStore.getDatas(res.sessionkey, 1);
      });
   };

   // 清空所有选中
   @action clearSelection = () => {
      this.tableStore.setSelectedRowKeys([]);
   };
}


export default fileSystem;
